home *** CD-ROM | disk | FTP | other *** search
- /*********************************************
- SPAZ, I CHANGED A LOT OF THIS CODE
- PLEASE CHECK IT OUT, THERE WAS SO MANY
- CHANGES, MY NAME WOULD HAVE BEEN ALL OVER
- IT.
- *********************************************/
- #include "bbs.h"
- #include <clib/intuition_protos.h>
- #define SEEK_SET 0
- #define FOREVER for(;;)
- #define NL NULL
- #define JH_LI 0
- #define JH_REGISTER 1
- #define JH_SHUTDOWN 2
- #define JH_WRITE 3
- #define JH_SM 4
- #define JH_PM 5
- #define JH_HK 6
- #define JH_SG 7
- #define JH_SF 8
- #define JH_EF 9
- #define JH_CO 10
- #define JH_BBSName 11
- #define JH_Sysop 12
- #define JH_FLAGFILE 13
- #define JH_SHOWFLAGS 14
- #define JH_DL 15
- #define JH_ExtHK 15
- #define JH_SIGBIT 16
- #define JH_FetchKey 17
- #define JH_SO 18
- /**************************** GET/SET Values from System ***********************/
-
- #define DT_NAME 100
- #define DT_PASSWORD 101
- #define DT_LOCATION 102
- #define DT_PHONENUMBER 103
- #define DT_SLOTNUMBER 104
- #define DT_SECSTATUS 105
- #define DT_SECBOARD 106
- #define DT_SECLIBRARY 107
- #define DT_SECBULLETIN 108
- #define DT_MESSAGESPOSTED 109
- #define DT_UPLOADS 110
- #define DT_DOWNLOADS 111
- #define DT_TIMESCALLED 112
- #define DT_TIMELASTON 113
- #define DT_TIMEUSED 114
- #define DT_TIMELIMIT 115
- #define DT_TIMETOTAL 116
- #define DT_BYTESUPLOAD 117
- #define DT_BYTEDOWNLOAD 118
- #define DT_DAILYBYTELIMIT 119
- #define DT_DAILYBYTEDLD 120
- #define DT_EXPERT 121
- #define DT_LINELENGTH 122
- #define ACTIVE_NODES 123
- #define DT_DUMP 124
- #define DT_TIMEOUT 125
- #define BB_CONFNAME 126
- #define BB_CONFLOCAL 127
- #define BB_LOCAL 128
- #define BB_STATUS 129
- #define BB_COMMAND 130
- #define BB_MAINLINE 131
- #define NB_LOAD 132
- #define DT_USERLOAD 133
- #define BB_CONFIG 134
- #define CHG_USER 135
- #define RETURNCOMMAND 136
- #define ZMODEMSEND 137
- #define ZMODEMRECEIVE 138
- #define SCREEN_ADDRESS 139
- #define BB_TASKPRI 140
- #define RAWSCREEN_ADDRESS 141
- #define BB_CHATFLAG 142
- #define DT_STAMP_LASTON 143
- #define DT_STAMP_CTIME 144
- #define DT_CURR_TIME 145
- #define DT_CONFACCESS 146
- #define BB_PCONFLOCAL 147
- #define BB_PCONFNAME 148
- #define BB_NODEID 149
- #define BB_CALLERSLOG 150
- #define BB_UDLOG 151
- #define EXPRESS_VERSION 152
- #define SV_UNICONIFY 153
- #define BB_CHATSET 162
- #define ENVSTAT 163
- #define GETKEY 500
- #define RAWARROW 501
- #define CHAIN 502
- /****************** in progress ******************/
- #define NODE_DEVICE 503
- #define NODE_UNIT 504
- #define NODE_BAUD 505
- #define NODE_NUMBER 506
- #define JH_MCI 507
- /*************************************************/
- #define PRV_COMMAND 508
- #define PRV_GROUP 509
- #define BB_CONFNUM 510
- #define BB_DROPDTR 511
- #define BB_GETTASK 512
- #define BB_REMOVEPORT 513
- #define BB_SOPT 514
- #define NODE_BAUDRATE 516
- #define BB_LOGONTYPE 517
- #define BB_SCRLEFT 518
- #define BB_SCRTOP 519
- #define BB_SCRWIDTH 520
- #define BB_SCRHEIGHT 521
- #define BB_PURGELINE 522
- #define BB_PURGELINESTART 523
- #define BB_PURGELINEEND 524
- #define BB_NONSTOPTEXT 525
- #define BB_LINECOUNT 526
- #define DT_LANGUAGE 527
- #define DT_QUICKFLAG 528
- #define DT_GOODFILE 529
- #define DT_ANSICOLOR 530
- #define MULTICOM 531
- #define LOAD_ACCOUNT 532
- #define SAVE_ACCOUNT 533
- #define SAVE_CONFDB 534
- #define LOAD_CONFDB 535
- #define GET_CONFNUM 536
- #define SEARCH_ACCOUNT 537
- #define APPEND_ACCOUNT 538
- #define LAST_ACCOUNTNUM 539
- #define MOD_TYPE 540
- #define DT_ISANSI 541
- #define BATCHZMODEMSEND 542
- #define DT_MSGCODE 543
- #define ACP_COMMAND 544
- #define DT_FILECODE 545
- #define EDITOR_STRUCT 546
- #define BYPASS_CSI_CHECK 547
- #define SENTBY 548
- #define DT_ADDBIT 1000
- #define DT_REMBIT 1001
- #define DT_QUERYBIT 1002
-
- #define READIT 1
- #define WRITEIT 0
- #define HK HtKey
- #define PM prompt
- #define SG showgfile
- #define SF showfile
- #define EF EditFile
- #define DROP Drop
- #define EDITSAVE 1
- #define EDITABORT 2
- #define EDITEDIT 3
- #define EDITLIST 4
- #define ANYKEY "press <RETURN> to continue"
- /**************************** PARAGON DEFINES ****************************/
- #define PG_SHUTDOWN 20
- #define PG_CO 2
- #define PG_SM 1
- #define PG_SO 3
- #define PG_CC 4
- #define PG_CH 5
- #define PG_PM 6
- #define PG_HK 8
- #define PG_SG 19
- #define PG_SF 10
- #define PG_EF 12
- #define PG_UD 13
- #define PG_US 14
- #define PG_PS 15
- #define PG_CS 16
- #define PG_RD 17
- #define PG_CL 18
- #define PG_TM 21
- #define PG_SC 7
- #define PG_FF 11
- extern int doormsgcode;
- extern char ReservedName[];
- extern int ReadExtChar(unsigned long wait,unsigned long signal);
- int Dropped=0;
- extern char *MyVerStr;
- LONG DOOR_TIMEOUT = KEYBOARD_TIMEOUT;
- extern int Edit(void);
- extern char ServerCommand[];
- BOOL isparagon = FALSE;
- char Screen_Address[200];
- int UserIsDoing=-1;
- int DoorResult;
- extern int AEGoodFile;
- extern char lang[];
- extern char MsgBuf[100][80];
- extern int XIMPort;
- unsigned long doorextsig=0L;
- extern int checksym;
- extern int BypassCSI;
-
- struct MyEditor
- {
- SHORT MaxFileLength;
- UBYTE MaxScrLength;
- UBYTE EditorTop;
- UBYTE EditorMaxWidth;
- UBYTE EditorAnsiColor;
- UBYTE EditorAllowLoad;
- UBYTE EditorAllowAbort;
- CPTR EditorFile;
- CPTR EditorIncludeFile;
- CPTR EditorPrependFile;
- CPTR EditorPostPendFile;
- } EditorStruct;
-
- struct JHMessage
- {
- struct Message Msg;
- char String[200];
- int Data;
- int Command;
- int NodeID;
- int LineNum;
- unsigned long signal;
- struct Process *task;
- APTR *Semi;
- APTR Filler1;
- APTR Filler2;
-
- } ;
-
- struct JHMessage *servermsg;
- struct DoorMsg {
- struct Message Door_Msg;
- short command;
- short data;
- char string[80];
- short carrier;
- };
-
- struct DoorMsg *doormsg;
- struct MsgPort *resmp;
- char ResPortName[30];
- ULONG ResControl(int node)
- {
- sprintf(ResPortName,"AEServer.%d",node);
- resmp=CreatePort(ResPortName,0L);
- return((ULONG)(1L<< resmp->mp_SigBit));
- }
- void DeleteResControl(void)
- {
- if(resmp)
- DeletePort((struct MsgPort *)resmp); resmp=0L;
- }
- void FreeACP(struct JHMessage *servermsg);
- BOOL CheckDoorMsg(int Mode)
- {
- static BOOL Inac=FALSE;
- register BOOL returnval=FALSE;
- int ch;
- if(Inac) return(0);
- while(servermsg=(struct JHMessage *)GetMsg((struct MsgPort *)resmp))
- {
-
- switch(servermsg->Command)
- {
- case JH_WRITE:
- Inac=TRUE;
- if(UserIsDoing==0)
- {
- AEPutStr(servermsg->String);} servermsg->Command=UserIsDoing;
- Inac=FALSE; break;
- case JH_MCI:
- Inac=TRUE; MCIDoor=TRUE;
- ReplyMsg((struct Message *)servermsg);
- mciputstr(servermsg->String); MCIDoor=FALSE;if(servermsg->Data) AEPutStr("\r\n");
- Inac=FALSE; return(returnval);break;
- case JH_CO:
- Inac=TRUE;
- ConPutStr(servermsg->String); if(servermsg->Data) ConPutStr("\r\n");
- Inac=FALSE;break;
- case JH_SM:
- Inac=TRUE;
- AEPutStr(servermsg->String);if(servermsg->Data) AEPutStr("\r\n");
- Inac=FALSE; break;
- case JH_PM:
- Inac=TRUE; AEPutStr(servermsg->String);
- if(LineInput("",servermsg->String,servermsg->Data,DOOR_TIMEOUT)<0)
- servermsg->Data=-1; else servermsg->Data=1; Inac=FALSE;break;
- case JH_HK:
- Inac=TRUE;
- ch=HtKey(servermsg->String); if(ch<0)servermsg->Data=-1;else servermsg->Data=1;
- servermsg->String[0]=ch; servermsg->String[1]='\0';Inac=FALSE; break;
- case JH_SG:
- Inac=TRUE;gnsflag=0;
- SG(servermsg->String); Inac=FALSE;break;
- case JH_SF: Inac=TRUE;gnsflag=0;
- SF(servermsg->String); Inac=FALSE;break;
- case JH_EF: Inac=TRUE;
- EF(servermsg->String,servermsg->Data,1000); Inac=FALSE;break;
- case JH_BBSName:
- strcpy(servermsg->String,Cmds->BBSName); break;
- case JH_Sysop:
- strcpy(servermsg->String,Cmds->SysopName); break;
- case JH_FLAGFILE:
- AddFlagtoList(servermsg->String); break;
- case DT_NAME :
- if(servermsg->Data) strcpy(servermsg->String,User.Name);
- else sprintf(User.Name,"%.31s",servermsg->String);
- break;
-
- case DT_PASSWORD :
-
- if(servermsg->Data)
- {
- /* get user password */
- strcpy(servermsg->String,"ENCRYPTED");
-
- } else {
-
- /* set user password */
- AECryptCpy(User.PassKey,servermsg->String);
- }
- break;
-
- case DT_LOCATION :
- if(servermsg->Data) strcpy(servermsg->String,User.Location);
- else sprintf(User.Location,"%.30s",servermsg->String);
- break;
- case DT_PHONENUMBER :
- if(servermsg->Data) strcpy(servermsg->String,User.PhoneNumber);
- else sprintf(User.PhoneNumber,"%.13s",servermsg->String);
- break;
- case DT_SLOTNUMBER :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Slot_Number);
- else User.Slot_Number=atoi(servermsg->String);
- break;
- case DT_SECSTATUS :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Sec_Status);
- else { User.Sec_Status=atoi(servermsg->String); ConvertAccess(); }
- break;
- case DT_SECBOARD :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Sec_Board);
- else User.Sec_Board=atoi(servermsg->String);
- break;
- case DT_SECLIBRARY :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Sec_Library);
- else User.Sec_Library=atoi(servermsg->String);
- break;
- case DT_SECBULLETIN :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Sec_Bulletin);
- else User.Sec_Bulletin=atoi(servermsg->String);
- break;
- case DT_MESSAGESPOSTED:
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Messages_Posted);
- else User.Messages_Posted=atoi(servermsg->String);
- break;
- case DT_UPLOADS :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Uploads);
- else User.Uploads=atoi(servermsg->String);
- break;
- case DT_DOWNLOADS :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Downloads);
- else User.Downloads=atoi(servermsg->String);
- break;
- case DT_TIMESCALLED :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Times_Called);
- else User.Times_Called=atoi(servermsg->String);
- break;
- case DT_TIMELASTON :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Time_Last_On);
- else User.Time_Last_On=atol(servermsg->String);
- break;
- case DT_TIMEUSED :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Time_Used);
- else User.Time_Used=atol(servermsg->String);
- break;
- case DT_TIMELIMIT :
- if(servermsg->Data) sprintf(servermsg->String,"%d",Time_limit);
- else Time_limit=atol(servermsg->String);
- break;
- case DT_TIMETOTAL :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Time_Total);
- else User.Time_Total=atol(servermsg->String);
- break;
- case DT_BYTESUPLOAD :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Bytes_Upload);
- else User.Bytes_Upload=atol(servermsg->String);
- break;
- case DT_BYTEDOWNLOAD :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Bytes_Download);
- else User.Bytes_Download=atol(servermsg->String);
- break;
- case DT_DAILYBYTELIMIT:
- if(servermsg->Data) sprintf(servermsg->String,"%d",BytesADL);
- else BytesADL=atol(servermsg->String);
- break;
- case DT_DAILYBYTEDLD :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.Daily_Bytes_Dld);
- else User.Daily_Bytes_Dld=atol(servermsg->String);
- break;
- case DT_EXPERT :
- if(servermsg->Data) sprintf(servermsg->String,"%c",User.Expert);
- else User.Expert=servermsg->String[0];
- break;
- case DT_LINELENGTH :
- if(servermsg->Data) sprintf(servermsg->String,"%d",User.LineLength);
- else User.LineLength=atoi(servermsg->String);
- break;
- case DT_DUMP:
- DumpActiveUser(servermsg->String); break;
- case DT_TIMEOUT:
- if(servermsg->Data) sprintf(servermsg->String,"%d",DOOR_TIMEOUT);
- else DOOR_TIMEOUT=atol(servermsg->String);
- break;
- case BB_CONFNAME:
- if(servermsg->Data) strcpy(servermsg->String,Conference_Name);
- else{ strcpy(Conference_Name,servermsg->String);
- strcpy(Cmds->ConfName[User.ConfRJoin-1],servermsg->String);
- }
- break;
- case BB_CONFLOCAL:
- if(servermsg->Data) strcpy(servermsg->String,Conference_Location);
- else strcpy(Conference_Location,servermsg->String);
- break;
- case BB_LOCAL:
- strcpy(servermsg->String,Cmds->BBSLoc); break;
- case BB_STATUS:
- if(Mode) strcpy(servermsg->String,"ONLINE"); else
- strcpy(servermsg->String,"OFFLINE"); break;
- case BB_COMMAND:
- serverin[0]=servermsg->String[0]; serverin[1]='\0'; returnval=TRUE; break;
- case BB_MAINLINE:
- ServerCommand[195]='\0';
- strcpy(servermsg->String,ServerCommand); break;
- case BB_TASKPRI:
- sprintf(Screen_Address,"%u",Cmds->TaskPri);
- strcpy(servermsg->String,Screen_Address);
- break;
- case BB_CHATFLAG:
- if(SySChat) strcpy(servermsg->String,"ON");
- else strcpy(servermsg->String,"OFF");
- break;
- case RAWSCREEN_ADDRESS:
- sprintf(Screen_Address,"%ld",MYScreen);
- strcpy(servermsg->String,Screen_Address);
- break;
- case BB_CHATSET:
- if(servermsg->Data)
- {
- sprintf(Screen_Address,"%d",PagedFlag);
- strcpy(servermsg->String,Screen_Address);
- }else PagedFlag=atoi(servermsg->String);
- break;
- case EXPRESS_VERSION:
- strcpy(servermsg->String,MyVerStr);
- break;
- case SV_UNICONIFY:
- ReplyMsg((struct Message *)servermsg); FreeMem(servermsg,servermsg->Msg.mn_Length);
- if(ICON)UnIconifyAE(0); else ScreenToFront(MYScreen);
- continue;break;
-
- case SV_SYSOPLOG: FreeACP(servermsg);
- Server(SV_SYSOPLOG); continue;break;
- case SV_LOCALLOG: FreeACP(servermsg);
- Server(SV_LOCALLOG); continue;break;
- case SV_ACCOUNTS: FreeACP(servermsg);
- Server(SV_ACCOUNTS);continue;break;
- case SV_EXITNODE:
- ReplyMsg((struct Message *)servermsg);FreeMem(servermsg,servermsg->Msg.mn_Length);
- Server(SV_EXITNODE); continue;break;
- case SV_INITMODEM:
- ReplyMsg((struct Message *)servermsg);FreeMem(servermsg,servermsg->Msg.mn_Length);
- Server(SV_INITMODEM); continue; break;
- case SV_NODEOFFHOOK:
- ReplyMsg((struct Message *)servermsg);FreeMem(servermsg,servermsg->Msg.mn_Length);
- Server(SV_NODEOFFHOOK); continue;break;
- case SV_WHATSUP:
- ReplyMsg((struct Message *)servermsg);FreeMem(servermsg,servermsg->Msg.mn_Length);
- SendMaster(); continue; break;
- case SV_INSTANT: FreeACP(servermsg);
- Server(SV_INSTANT); continue; break;
- case SV_RESERVE: FreeACP(servermsg);
- Server(SV_RESERVE); continue; break;
- case SV_CHATTOGGLE:
- ReplyMsg((struct Message *)servermsg);FreeMem(servermsg,servermsg->Msg.mn_Length);
- Server(SV_CHATTOGGLE); /*StatChatFlag();*/continue; break;
- case SV_AESHELL: FreeACP(servermsg);
- Server(SV_AESHELL); continue; break;
- case SV_CHAT: FreeACP(servermsg);
- Server(SV_CHAT); returnval=TRUE; continue;break;
- case SV_SETNRAMS: ReplyMsg((struct Message *)servermsg);FreeMem(servermsg,servermsg->Msg.mn_Length);
- SetNRAMS(); continue; break;
-
- case SV_QUIETNODE: ReplyMsg((struct Message *)servermsg);FreeMem(servermsg,servermsg->Msg.mn_Length);
- Server(SV_QUIETNODE); continue; break;
- case SV_RESERVENODE: ReplyMsg((struct Message *)servermsg);
- strcpy(ReservedName,servermsg->String);
- FreeMem(servermsg,servermsg->Msg.mn_Length);
- if(ReservedName[0]=='\0') SetEnvStat(ENV_AWAITCONNECT); else
- SetEnvStat(ENV_RESERVE);
- break;
- }
- ReplyMsg((struct Message *)servermsg);
- }
- return(returnval);
- }
-
- void FreeACP(struct JHMessage *servermsg)
- {
- ReplyMsg((struct Message *)servermsg); FreeMem(servermsg,servermsg->Msg.mn_Length);
- if(ICON)UnIconifyAE(1); else ScreenToFront(MYScreen);
- }
- int Control(int node,int Type,int ModType)
- {
- struct MsgPort *mp;
- struct JHMessage *msg;
- struct User *tempuserdata;
- struct UserKeys *tempuserkeys;
- struct ConfBase *tempconfdb;
- //char *JhExtPort;
- long XtypeSig;
- long TimeVar;
- long signals;
- int Nodes=0;
- int DoorActive=0;
- int temp;
- int ch;
- int i;
- char date[20];
- char DISPLAY_time[30];
- char string[200];
- char TEMPMENU_Li[200];
- if(strlen(MAINMENU_Li)>199) MAINMENU_Li[198]='\0';
- strcpy(TEMPMENU_Li,MAINMENU_Li);
- strcpy(MAINMENU_Li,"");
- //LineCount = 0;
- if(Type=='I') return(0);
-
- if(Type=='X')
- {
- sprintf(GSTR1,"AEDoorPort%d\0",node);
- if(mp=FindPort(GSTR1))
- {
- DoorActive=1;
- } else {
- mp=CreatePort(GSTR1,0L);
- }
-
- isparagon=FALSE;
- XtypeSig=(1L<< mp->mp_SigBit);
- }
- else
- {
- sprintf(GSTR1,"DoorControl%d\0",node);
- if(FindPort(GSTR1)) return(0);
- mp=CreatePort(GSTR1,0L);
-
- isparagon=TRUE;
- }
-
-
- if(Type=='X')
- while(1)
- {
- signals=Wait(XtypeSig | DoorSig);
- if(signals&DoorSig) { CheckDoorMsg(0); continue; }
- while(msg=(struct JHMessage *)GetMsg((struct MsgPort *)mp))
- {
- if(msg->Command!=ACP_COMMAND)msg->LineNum=0;
- switch(msg->Command)
- {
- case JH_REGISTER:
- Nodes++;
- break;
- case JH_WRITE:
- AEPutStr(msg->String); break;
- case CHAIN:
- Nodes--; break;
- case JH_SHUTDOWN:
- Nodes--;
-
- if(!Nodes)
- {
- RawArrow=0;
- ReplyMsg((struct Message *)msg);
- if(!DoorActive)DeletePort((struct MsgPort *)mp);
- if(MAINMENU_Li[0]!='\0') return(1); else return(0);
- }
- break;
- case JH_SIGBIT:
- msg->Data=doorextsig;
- break;
- case RETURNCOMMAND:
- strcpy(MAINMENU_Li,msg->String);
- strcpy(ServerCommand,msg->String); break;
- case JH_CO:
- ConPutStr(msg->String); if(msg->Data){ ConPutStr("\r\n"); CheckForPause();} break;
- case JH_SO:
- SerPutStr(msg->String); if(msg->Data){ SerPutStr("\r\n");} break;
- case JH_SM:
- AEPutStr(msg->String);if(msg->Data)
- { AEPutStr("\r\n"); CheckForPause();} break;
- case JH_MCI: MCIDoor=TRUE;
- strcpy(Screen_Address,msg->String);
- mciputstr(Screen_Address);MCIDoor=FALSE; if(msg->Data)
- { AEPutStr("\r\n"); CheckForPause();} break;
- case JH_PM: AEPutStr(msg->String);
- if(LineInput("",msg->String,msg->Data,DOOR_TIMEOUT)<0)
- msg->Data=-1; else msg->Data=1; break;
- case JH_LI:
- if(LineInput(msg->String,msg->String,msg->Data,DOOR_TIMEOUT)<0)
- msg->Data=-1; else msg->Data=1; break;
- case JH_ExtHK: LineCount=0;
- msg->Command=ReadExtChar(DOOR_TIMEOUT,1L << (msg->signal));
- if(msg->Command<0)msg->Data=-1;else msg->Data=1;
- break;
- case JH_HK: LineCount=0;
- ch=HtKey(msg->String); if(ch<0)msg->Data=-1;else msg->Data=1;
- msg->String[0]=ch; msg->String[1]='\0'; msg->Command=XIMPort;break;
- case JH_FetchKey:
- if(CheckCon() || CheckSer())
- {
-
- msg->Command=ReadChar(DOOR_TIMEOUT); if(msg->Command<0)msg->Data=-1;else msg->Data=1;
- }
- else { msg->Command=0; msg->Data=1; } break;
- case JH_SG:gnsflag=0;
- ChecktoDisplay(msg->String,Screen_Address,1,0); break;
- case JH_SF:gnsflag=0;
- SF(msg->String); break;
- case JH_EF:
- if(!EF(msg->String,msg->Data,1000)) msg->Data=-1; else msg->Data=1;break;
- case JH_BBSName:
- strcpy(msg->String,Cmds->BBSName); break;
- case JH_Sysop:
- strcpy(msg->String,Cmds->SysopName); break;
- case JH_FLAGFILE:
- AddFlagtoList(msg->String); break;
- case DT_NAME :
- if(msg->Data) strcpy(msg->String,User.Name);
- else sprintf(User.Name,"%.31s",msg->String);
- break;
-
- case DT_PASSWORD :
- if(msg->Data)
- {
- /* get user password */
- strcpy(msg->String,"ENCRYPTED");
- } else {
- /* set user password */
- AECryptCpy(User.PassKey,msg->String);
- }
- break;
-
- case DT_LOCATION :
- if(msg->Data) strcpy(msg->String,User.Location);
- else sprintf(User.Location,"%.30s",msg->String);
- break;
- case DT_PHONENUMBER :
- if(msg->Data) strcpy(msg->String,User.PhoneNumber);
- else sprintf(User.PhoneNumber,"%.13s",msg->String);
- break;
- case DT_SLOTNUMBER :
- if(msg->Data) sprintf(msg->String,"%d",User.Slot_Number);
- else User.Slot_Number=atoi(msg->String);
- break;
- case DT_SECSTATUS :
- if(msg->Data) sprintf(msg->String,"%d",User.Sec_Status);
- else { User.Sec_Status=atoi(msg->String); ConvertAccess(); }
- break;
- case DT_SECBOARD :
- if(msg->Data) sprintf(msg->String,"%d",User.Sec_Board);
- else User.Sec_Board=atoi(msg->String);
- break;
- case DT_SECLIBRARY :
- if(msg->Data) sprintf(msg->String,"%d",User.Sec_Library);
- else User.Sec_Library=atoi(msg->String);
- break;
- case DT_SECBULLETIN :
- if(msg->Data) sprintf(msg->String,"%d",User.Sec_Bulletin);
- else User.Sec_Bulletin=atoi(msg->String);
- break;
- case DT_MESSAGESPOSTED:
- if(msg->Data) sprintf(msg->String,"%d",User.Messages_Posted);
- else User.Messages_Posted=atoi(msg->String);
- break;
- case DT_UPLOADS :
- if(msg->Data) sprintf(msg->String,"%d",User.Uploads);
- else User.Uploads=atoi(msg->String);
- break;
- case DT_DOWNLOADS :
- if(msg->Data) sprintf(msg->String,"%d",User.Downloads);
- else User.Downloads=atoi(msg->String);
- break;
- case DT_TIMESCALLED :
- if(msg->Data) sprintf(msg->String,"%d",User.Times_Called);
- else User.Times_Called=atoi(msg->String);
- break;
- case DT_TIMELASTON :
- if(msg->Data) sprintf(msg->String,"%d",User.Time_Last_On);
- else User.Time_Last_On=atol(msg->String);
- break;
- case DT_TIMEUSED :
- if(msg->Data) sprintf(msg->String,"%d",User.Time_Used);
- else User.Time_Used=atol(msg->String);
- break;
- case DT_TIMELIMIT :
- if(msg->Data) sprintf(msg->String,"%d",Time_limit);
- else Time_limit=atol(msg->String);
- break;
- case DT_TIMETOTAL :
- if(msg->Data) sprintf(msg->String,"%d",User.Time_Total);
- else User.Time_Total=atol(msg->String);
- break;
- case DT_BYTESUPLOAD :
- if(msg->Data) sprintf(msg->String,"%d",User.Bytes_Upload);
- else User.Bytes_Upload=atol(msg->String);
- break;
- case DT_BYTEDOWNLOAD :
- if(msg->Data) sprintf(msg->String,"%d",User.Bytes_Download);
- else User.Bytes_Download=atol(msg->String);
- break;
- case DT_DAILYBYTELIMIT:
- if(msg->Data) sprintf(msg->String,"%d",User.Daily_Bytes_Limit);
- else User.Daily_Bytes_Limit=atol(msg->String);
- break;
- case DT_DAILYBYTEDLD :
- if(msg->Data) sprintf(msg->String,"%d",User.Daily_Bytes_Dld);
- else User.Daily_Bytes_Dld=atol(msg->String);
- break;
- case DT_EXPERT :
- if(msg->Data) sprintf(msg->String,"%c",User.Expert);
- else User.Expert=msg->String[0];
- break;
- case DT_LINELENGTH :
- if(msg->Data) sprintf(msg->String,"%d",User.LineLength);
- else User.LineLength=atoi(msg->String);
- break;
- case ACTIVE_NODES:
- i=0;
- while(i<32) // 32 Nodes
- {
- sprintf(GSTR1,"AmiExpress_Node.%d\0",i);
- if(FindPort(GSTR1))
- {
- msg->String[i]='X';
- } else {
- msg->String[i]=' ';
- }
- i++;
- }
- break;
-
- case DT_DUMP:
- DumpActiveUser(msg->String); break;
- case DT_MSGCODE:
- switch(msg->Data)
- {
- case 1: doormsgcode=1; break;
- case 2: doormsgcode=0; break;
- default: msg->Data=doormsgcode;
- }break;
- case ENVSTAT:
- if(msg->Data)
- {
- sprintf(Screen_Address,"%d",UserIsDoing);
- strcpy(msg->String,Screen_Address);
- }
- else { UserIsDoing=atoi(msg->String);
- SetEnvStat(atoi(msg->String)); } break;
- case SV_NEWMSG:
- strcpy(Screen_Address,msg->String);
- SetEnvMsg(Screen_Address); break;
- case DT_TIMEOUT:
- if(msg->Data) sprintf(msg->String,"%d",DOOR_TIMEOUT);
- else DOOR_TIMEOUT=atol(msg->String);
- break;
- case BB_CONFNAME:
- if(msg->Data) strcpy(msg->String,Conference_Name);
- else{ strcpy(Conference_Name,msg->String);
- strcpy(Cmds->ConfName[User.ConfRJoin-1],msg->String);
- }
- break;
- case BB_CONFLOCAL:
- if(msg->Data) strcpy(msg->String,Conference_Location);
- else
- {
- strcpy(Conference_Location,msg->String);
- strcpy(GSTR1,Conference_Location);
- if(MaxDirs=IntFromIcon(GSTR1,"NDIRS")) {
- strcpy(GSTR1,Conference_Location);
- if(IsFromIcon(GSTR1,"FREEDOWNLOADS")) FreeDownloads=1; else FreeDownloads=0;
- }
- }
- break;
- case BB_LOCAL:
- strcpy(msg->String,Cmds->BBSLoc); break;
- case ZMODEMSEND:
- DTBT=0;
- TBT=0;
- TTTM=NULL;
- TTEFF=NULL;
- TTCPS=NULL;
- strcpy(Screen_Address,msg->String);
- ch=Zmodem_Send(Screen_Address);
- if(Whence_The_Logon==REMOTE_LOGON && !CheckCarrier()) msg->Data=-2;
- else
- msg->Data=ch;
- break;
- case BATCHZMODEMSEND:
- DTBT=0;
- TBT=0;
- TTTM=NULL;
- TTEFF=NULL;
- TTCPS=NULL;
- strcpy(Screen_Address,msg->String);
- ch=Zmodem_Send(msg->Filler1);
- if(Whence_The_Logon==REMOTE_LOGON && !CheckCarrier()) msg->Data=-2;
- else
- msg->Data=ch;
- break;
- case ZMODEMRECEIVE:
- DTBT=0;
- TBT=0;
- TTTM=NULL;
- TTEFF=NULL;
- TTCPS=NULL;
- strcpy(Screen_Address,msg->String);
- ch=Zmodem_Receive(Screen_Address,1);
- if(Whence_The_Logon==REMOTE_LOGON && !CheckCarrier()) msg->Data=-2;
- else
- msg->Data=ch;
- break;
- case SCREEN_ADDRESS:
- sprintf(Screen_Address,"%08x",MYScreen);
- strcpy(msg->String,Screen_Address);
- break;
-
- case BB_TASKPRI:
- sprintf(Screen_Address,"%u",Cmds->TaskPri);
- strcpy(msg->String,Screen_Address);
- break;
- case RAWSCREEN_ADDRESS:
- sprintf(Screen_Address,"%ld",MYScreen);
- strcpy(msg->String,Screen_Address);
- break;
- case BB_CHATFLAG:
- if(SySChat) strcpy(msg->String,"ON");
- else strcpy(msg->String,"OFF");
- break;
- case BB_CHATSET:
- if(msg->Data)
- {
- sprintf(Screen_Address,"%d",PagedFlag);
- strcpy(msg->String,Screen_Address);
- }else PagedFlag=atoi(msg->String);
- break;
- case DT_STAMP_LASTON:
- sprintf(string,"%s",ctime(&User.Time_Last_On));
- string[strlen(string)-1]='\0';
- strcpy(msg->String,string); break;
- case DT_CURR_TIME:
- TimeVar=time(NULL);
- sprintf(string,"%d",TimeVar);
- strcpy(msg->String,string); break;
- case DT_STAMP_CTIME:
- TimeVar=0L;
- Time_system=time(&TimeVar);
- sprintf(string,"%s",ctime(&Time_system));
- string[strlen(string)-1]='\0';
- strcpy(msg->String,string); break;
- case DT_CONFACCESS:
- if(msg->Data) strcpy(msg->String,User.Conference_Access);
- else strcpy(User.Conference_Access,msg->String);
- break;
- case BB_PCONFNAME:
- temp=atoi(msg->String);
- if(temp<1 || temp>9)
- {
- strcpy(msg->String,"ERROR"); break;
- }
- strcpy(msg->String,Cmds->ConfName[temp-1]);
- break;
- case BB_PCONFLOCAL:
- temp=atoi(msg->String);
- if(temp<1 || temp>9)
- {
- strcpy(msg->String,"ERROR"); break;
- }
- strcpy(msg->String,Cmds->ConfLoc[temp-1]);
- break;
- case BB_MAINLINE:
- ServerCommand[195]='\0';
- strcpy(msg->String,ServerCommand); break;
- case BB_NODEID:
- sprintf(Screen_Address,"%d",Cmds->AcLvl[LVL_NODE_NUMBER]);
- strcpy(msg->String,Screen_Address); break;
- case BB_CALLERSLOG:
- CallersLog(msg->String); break;
- case BB_UDLOG:
- UDLog(msg->String); break;
- case EXPRESS_VERSION:
- strcpy(msg->String,MyVerStr); break;
- case GETKEY:
- if(CheckSer() || CheckCon())
- msg->String[0]='1'; else msg->String[0]='0';
- msg->String[1]='\0';
- break;
- case RAWARROW:
- if(RawArrow) RawArrow=0; else RawArrow=1;
- break;
- case PRV_COMMAND:
- strcpy(ServerCommand,msg->String);
- MenuCommand(ServerCommand);
- break;
- case PRV_GROUP:
- strcpy(ServerCommand,msg->String);
- temp=atoi(ServerCommand);
- strcpy(Cmds->ConfLoc[temp],&ServerCommand[40]);
- if(temp==CN-1) strcpy(Conference_Location,&ServerCommand[40]);
- ServerCommand[39]='\0';
- StripReturn(ServerCommand);
- strcpy(Cmds->ConfName[temp],&ServerCommand[2]);
- if(temp==CN-1) strcpy(Conference_Name,&ServerCommand[2]);
- break;
- case BB_CONFNUM:
- sprintf(ServerCommand,"%d",CN-1);
- strcpy(msg->String,ServerCommand);
- break;
- case BB_DROPDTR:
- ModemOffHook(); break;
- case BB_GETTASK:
- msg->task=(struct Process *)FindTask(0L);
- break;
- case NODE_BAUD:
- sprintf(Screen_Address,"%ld",Online_Baud);
- strcpy(msg->String,Screen_Address);break;
- case NODE_BAUDRATE:
- sprintf(Screen_Address,"%ld",Online_BaudR);
- strcpy(msg->String,Screen_Address);break;
- case NODE_DEVICE:
- strcpy(msg->String,Cmds->SerDev); break;
- case NODE_UNIT:
- sprintf(Screen_Address,"%d",Cmds->SerDevUnit);
- strcpy(msg->String,Screen_Address);
- break;
- case DT_ADDBIT:
- ADD_BIT(msg->Data); break;
- case DT_REMBIT:
- REM_BIT(msg->Data); break;
- case DT_QUERYBIT:
- msg->Command=GET_BIT(msg->Data); break;
- case BB_LOGONTYPE:
- msg->Data=Whence_The_Logon;
- break;
- case BB_SCRLEFT: msg->Data=MYNewScreen.LeftEdge; break;
- case BB_SCRTOP: msg->Data=MYNewScreen.TopEdge; break;
- case BB_SCRWIDTH: msg->Data=MYNewScreen.Width; break;
- case BB_SCRHEIGHT: msg->Data=MYNewScreen.Height; break;
- case BB_PURGELINE: PurgeLine(); break;
- case BB_PURGELINESTART: PurgeLineStart(); break;
- case BB_PURGELINEEND: PurgeLineEnd(); break;
- case BB_NONSTOPTEXT: if(!msg->Data) gnsflag=0; else gnsflag=1;
- break;
- case BB_LINECOUNT: if(!msg->Data) LineCount=atoi(msg->String);
- else { sprintf(Screen_Address,"%d",LineCount); strcpy(msg->String,Screen_Address); }
- break;
- case DT_LANGUAGE: if(msg->Data) strcpy(msg->String,lang); else
- strcpy(lang,msg->String); break;
- case DT_QUICKFLAG:
- QuickFlag=msg->Data;
- break;
- case DT_GOODFILE:
- AEGoodFile=msg->Data; break;
- case DT_ANSICOLOR:
- if(msg->Data) { AnsiColor=1; }
- else { AnsiColor=0; }
- break;
- case DT_ISANSI:
- if(AnsiColor) msg->Data=1;
- else msg->Data=0; break;
- case MULTICOM:
- msg->Semi=(APTR)MasterNode;
- break;
- case LOAD_ACCOUNT:
- tempuserdata=msg->Filler1; tempuserkeys=msg->Filler2;
- msg->NodeID=0;
- if(User.Slot_Number==msg->Data)
- {
- SaveMsgPointers(CN); //AddMsgPointers();
- CopyMem((struct User *)&User,tempuserdata,sizeof(struct User));
- CopyMem((struct UserKeys *)&User_keys,tempuserkeys,sizeof(struct UserKeys));
- LoadMsgPointers(CN);
- msg->NodeID=1;
- }
- else
- {
- if(Load_Account(msg->Data,msg->Filler1,msg->Filler2)!=FAILURE) msg->NodeID=1;
- }
- msg->Data=msg->NodeID;
- break;
- case SEARCH_ACCOUNT:
- if(Find_User_From_Number(msg->Data,msg->Filler1)) msg->Data=1; else
- msg->Data=0;
- break;
- case APPEND_ACCOUNT:
- tempuserdata=(struct User *)msg->Filler1;
- tempuserkeys=(struct UserKeys *)msg->Filler2;
- InitUser(tempuserdata,tempuserkeys);
- Find_Open_Account(tempuserdata,tempuserkeys);
- break;
- case LAST_ACCOUNTNUM:
- msg->Data=(int) Find_Last_Account();
- break;
-
- case SAVE_ACCOUNT:
- tempuserdata=(struct User *)msg->Filler1;
- tempuserkeys=(struct UserKeys *)msg->Filler2;
- if(tempuserdata->Slot_Number==0)
- {
- tempuserkeys->Number=0;
- Save_Account(tempuserdata,tempuserkeys,msg->Data,1);
- }
- else
-
- Save_Account(tempuserdata,tempuserkeys,0,0);
-
- if(User.Slot_Number==msg->Data)
- {
- i=0;
- if(User.Sec_Status!=tempuserdata->Sec_Status || !stricmp(User.Conference_Access,tempuserdata->Conference_Access)) i=1;
- CopyMem(tempuserdata,(struct User *)&User,sizeof(struct User));
- CopyMem(tempuserkeys,(struct UserKeys *)&User_keys,sizeof(struct UserKeys));
- Time_limit=User.Time_Total-User.Time_Used;
- LoadMsgPointers(CN);
- if(i) ConvertAccess();
-
- }
-
- break;
- case EDITOR_STRUCT:
- if(msg->Data)
- {
- CopyMem(msg->Filler1,(APTR)&EditorStruct,sizeof(struct MyEditor));
- }else CopyMem((APTR)&EditorStruct,msg->Filler1,sizeof(struct MyEditor));
- break;
- case LOAD_CONFDB:
-
- Load_ConfDB(msg->Data,msg->NodeID,msg->Filler1);
- tempconfdb=msg->Filler1;
- break;
- case SAVE_CONFDB:
- tempconfdb=msg->Filler1;
- Save_ConfDB(msg->Data,msg->NodeID,msg->Filler1);
- if(User.Slot_Number==msg->Data) LoadMsgPointers(CN);
-
- break;
- case GET_CONFNUM:
- GetConfName((char *)msg->Filler1,(char *)msg->Filler2,msg->Data);
- GetConfName(GSTR1,GSTR2,CN-1); break;
- case MOD_TYPE: msg->Data=ModType; break;
- case DT_FILECODE: checksym=msg->Data; break;
- case ACP_COMMAND:
- SendACPCommand(msg->String,msg->Data,msg->LineNum);
- break;
- case BYPASS_CSI_CHECK:
- BypassCSI=msg->Data; break;
- case SENTBY:
- msg->Data=Cmds->AcLvl[20]; break;
-
-
- }
- ReplyMsg((struct Message *)msg);
- }
- }
- else
- while(1)
- {
- doormsg=(struct DoorMsg *)WaitPort((struct MsgPort *)mp);
- while(doormsg=(struct DoorMsg *)GetMsg((struct MsgPort *)mp))
- {
- doormsg->carrier=FALSE;
- switch(doormsg->command)
- {
- case PG_SHUTDOWN:
- strcpy(string,"Exiting");
- ReplyMsg((struct Message *)doormsg);
- DeletePort((struct MsgPort *)mp);
- AEPutStr("\r\n"); RawArrow=0;return(0);
- break;
- case PG_SO: SerPutChar((char *)&(doormsg->data)); break;
- case PG_CC: ConPutChar((char *)&(doormsg->data)); break;
- case PG_CH: SerPutChar((char *)&(doormsg->data));
- ConPutChar((char *)&(doormsg->data));break;
- case PG_CO:
- ConPutStr(doormsg->string); if(doormsg->data){ ConPutStr("\r\n");
- CheckForPause(); }break;
- case PG_SM:
- AEPutStr(doormsg->string);if(doormsg->data){ AEPutStr("\r\n");
- CheckForPause();} break;
- case PG_PM:AEPutStr(doormsg->string);
- if(LineInput("",doormsg->string,doormsg->data,DOOR_TIMEOUT)<0)
- doormsg->carrier=TRUE; else doormsg->carrier=FALSE;break;
- case PG_SC:AEPutStr(doormsg->string);
- if(LineInput("",doormsg->string,doormsg->data,DOOR_TIMEOUT)<0)
- doormsg->carrier=TRUE; else doormsg->carrier=FALSE;break;
- case PG_HK:
- ch=HtKey(doormsg->string); if(ch<0)doormsg->carrier=TRUE;else doormsg->carrier=FALSE;
- doormsg->string[0]=ch; doormsg->string[1]='\0'; break;
- case PG_SG:gnsflag=0;MCIViewSafe=FALSE;
- SG(doormsg->string); MCIViewSafe=TRUE;break;
- case PG_SF:gnsflag=0;
- MCIViewSafe=FALSE;SF(doormsg->string);MCIViewSafe=TRUE; break;
- case PG_EF:
- EF(doormsg->string,75,doormsg->data); break;
- case PG_UD:
- if(doormsg->data==1){ doormsg->data=User.Sec_Status/10; break; }
- if(doormsg->data==2){ doormsg->data=User.Expert; break; }
- if(doormsg->data==3){ doormsg->data=0; break; }
- if(doormsg->data==4){ doormsg->data=User.Times_Called; break;}
- if(doormsg->data==5){ doormsg->data=User.Times_Called; break;}
- if(doormsg->data==6){ doormsg->data=1; break;}
- if(doormsg->data==7){ doormsg->data=(int)(Time_limit/60L); break; }
- if(doormsg->data==8){ doormsg->data=80; break; }
- if(doormsg->data==9){ doormsg->data=User.LineLength; break; }
- break;
- case PG_US:
- if(doormsg->data==1){ strcpy(doormsg->string,User.Name);doormsg->string[21]='\0'; break;}
- if(doormsg->data==2){ strcpy(doormsg->string,User.Pass);doormsg->string[13]='\0'; break;}
- if(doormsg->data==3){ strcpy(doormsg->string,User.Location);doormsg->string[39]='\0'; break; }
- if(doormsg->data==4){ strcpy(doormsg->string,User.Location);doormsg->string[29]='\0'; break; }
- if(doormsg->data==5){ strcpy(doormsg->string,User.Location);doormsg->string[2]='\0'; break; }
- if(doormsg->data==6){ strcpy(doormsg->string,User.Location);doormsg->string[7]='\0'; break; }
- if(doormsg->data==7){ strcpy(doormsg->string,"PGDOORS:"); break;}
- if(doormsg->data==8){ strcpy(doormsg->string,Cmds->BBSLoc); break;}
-
- if(doormsg->data==9){ strcpy(doormsg->string,GetTheDate(0L)); break;}
- if(doormsg->data==10)
-
- {
- Time_system=time(NULL);
- sprintf(string,"%s",ctime(&Time_system));
- Convert_CTime_To_Date(string,date,DISPLAY_time);
- strcpy(doormsg->string,DISPLAY_time); break;
- }
- strcpy(doormsg->string,""); break;
- case PG_PS: break;
- case PG_CS: break;
- case PG_RD: if(doormsg->data==0) break; else doormsg->data=rnd(doormsg->data); break;
- case PG_CL: break;
- case PG_TM: User.Time_Used -=((LONG)doormsg->data)*60L;
- if(User.Time_Used<0L)User.Time_Used=0L;
- Time_limit +=((LONG)doormsg->data)*60L;
- if(Time_limit<0L) Time_limit=0L;
- break;
- case PG_FF: if(!access(doormsg->string,00)) doormsg->data=1; else
- doormsg->data=-1; break;
- case BB_TASKPRI:
- sprintf(Screen_Address,"%u",Cmds->TaskPri);
- strcpy(msg->String,Screen_Address);
- break;
-
- }
- ReplyMsg((struct Message *)doormsg);
- }
- }
- RawArrow=0;
- }
-
-
-
- /* showfile(mstring) shows the text file which mstring is the path to.
- */
- void showfile(mstring)
- char mstring[];
- {
- if(!access(mstring,00))
- {
- DisplayFile(mstring);
- }
- }
- void showgfile(mstring)
- char mstring[];
- {
- char FileName[80];
- strcpy(FileName,mstring);
- strcat(FileName,".GR1");
-
- if(!access(FileName,00))
- {
- DisplayFile(FileName);
- }
- else
- {
- strcpy(FileName,mstring);
- strcat(FileName,".TXT.GR");
- if(!access(FileName,00))
- {
- DisplayFile(FileName);
- }
- else
- {
- strcpy(FileName,mstring);
- strcat(FileName,".TXT");
- if(!access(FileName,00))
- {
- DisplayFile(FileName);
- }
- }
- }
- }
- extern int Lines;
- int EditFile(char mstring[],int End,int Length)
- {
- FILE *fi;
- int stat;
- Lines=0;
- LoadMsg(mstring);
- stat=Edit();
- if(stat==TIMEOUT||stat==NO_CARRIER) return(0);
- if(stat<0) { AEPutStr("\r\n"); return(1); }
- AEPutStr("Saving...");
- if(!(fi=fopen(mstring,"w")))
- {
- AEPutStr("Failed!\r\n\r\n");
- return(1);
- }
- for(stat=0;stat<Lines;stat++)
- fprintf(fi,"%s\n",MsgBuf[stat]);
- fclose(fi);
- return(1);
- }
- int HtKey(char *prompt)
- {
- int ch;
- LineCount=0;
- AEPutStr(prompt);
- ch=(int)ReadChar(DOOR_TIMEOUT);
- /* if(isparagon==TRUE)*/ return(ch);
- /*if(ch=='\r' || ch=='\n') ch='\0'; return(ch);*/
- }
- VOID DumpActiveUser(char *FileName)
- {
- FILE *fi;
- fi=fopen(FileName,"wb");
- fwrite((APTR)&User,sizeof(struct User),1,fi);
- fclose(fi);
- }
-
- int DisplayFile(char *s)
- {
- int result;
- MCIDoor=TRUE;
- result=MenuSend24(s,0);MCIDoor=FALSE;
- return(result);
-
- }
- void CheckRexxInterface(char *arg1,char *returnstr)
- {
- static BOOL Inac=FALSE;
- int Command;
- strcpy(returnstr,"BUSY");
- if(Inac) return;
- strcpy(returnstr,"");
- //if(*(arg1)!=0) Command=atoi(arg1);
- if(!strnicmp(arg1,"GETDATA",7))
- {
- Command=atoi(arg1+8);
- switch(Command)
- {
- case BB_CHATFLAG:
- if(SySChat) strcpy(returnstr,"ON");
- else strcpy(returnstr,"OFF");
- break;
-
- }
- return;
- }
-
- if(!strnicmp(arg1,"AESAYLN",7))
- {
- Inac=TRUE;
- AEPutStr(arg1+8);
- AEPutStr("\r\n");
- Inac=FALSE;
- return;
- }
- if(!strnicmp(arg1,"AESAY",5))
- {
- Inac=TRUE;
- AEPutStr(arg1+6);
- Inac=FALSE;
- return;
- }
-
- }
-
-